Network operators commonly use a portion of a data packet designated as a tag to identify data packets associated with a particular subscriber. The tag enables network devices that are part of a service provider network to segregate data packets based on the subscriber with which the data packets are associated. For example, a service provider may use a single service provider network to provide data services to two subscribers. Since the service provider network is accessible to both subscribers, the service provider may need to prevent one subscriber from having access to data packets associated with the other subscriber. Tags enable such separation by identifying the subscriber associated with each data packet.
Data packets may include one or more of a variety of tags. For example, Multiprotocol Label Switching (MPLS) tags are commonly used to associate data packets with an MPLS label-switched path. Virtual Local Area Network (VLAN) tags, such as tags defined by the Institute of Electrical and Electronic Engineers (IEEE) 802.1Q and 802.1ad standards, are also common. Each of these types of tags may use a different format. For example, an MPLS tag may occupy a significantly larger portion of a data packet than a VLAN tag.
Conventional switches are capable of sending and receiving data packets having a single type of tag on a particular port. These switches are not capable of sending and receiving a data packet with an MPLS tag and a data packet with an 802.1Q VLAN tag on a single port. Service providers, however, have a need to support different types of tags on a single port because they want their networks to accommodate as many subscribers as possible, even if the subscribers do not all use the same tag type.
One way to support multiple tag types on a single port is to translate tags from one type to another type. For example, an MPLS tag could be translated to a VLAN tag. However, such translations may result in a loss of information, especially when translating to a tag type that uses fewer bits than the native tag type.
Another way of supporting multiple tag types is to dedicate one port of each network device to each of a plurality of tag types. This approach requires the network operator to dedicate additional ports and links, such as copper or fiber cables, to relaying data packets having a particular tag type even if the number of data packets relayed by the port is far less than the port's capacity. Consequently, this approach is inefficient and expensive.